মডেল ইভ্যালুয়েশন মেট্রিক্স হল সেই মানদণ্ড যা দিয়ে একটি মডেলের কার্যকারিতা এবং তার সঠিকতা মূল্যায়ন করা হয়। Accuracy, Precision, এবং Recall হল সবচেয়ে প্রচলিত মেট্রিক্স যেগুলি ক্লাসিফিকেশন মডেলের পারফরম্যান্স মূল্যায়ন করতে ব্যবহৃত হয়। এগুলোর মাধ্যমে আমরা জানতে পারি, মডেল কতটা সঠিকভাবে ডেটার ক্লাস নির্ধারণ করতে পারে।
১. Accuracy (সঠিকতা)
Accuracy একটি মৌলিক ইভ্যালুয়েশন মেট্রিক, যা দেখায় যে মডেল মোট কতটা সঠিকভাবে পূর্বাভাস করেছে।
Accuracy গণনা করা হয়:
- True Positives (TP): সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাস করা।
- True Negatives (TN): সঠিকভাবে নেগেটিভ ক্লাস পূর্বাভাস করা।
- False Positives (FP): ভুলভাবে পজিটিভ ক্লাস পূর্বাভাস করা।
- False Negatives (FN): ভুলভাবে নেগেটিভ ক্লাস পূর্বাভাস করা।
- Accuracy এমন একটি মেট্রিক যা আমাদের বলে, মোট কতটা সঠিকভাবে পূর্বাভাস দেওয়া হয়েছে, তবে এটি ক্লাস ইমব্যালেন্স (যেমন পজিটিভ ক্লাস কম বা নেগেটিভ ক্লাস বেশি) থাকলে কিছুটা বিভ্রান্তিকর হতে পারে।
উদাহরণ:
from sklearn.metrics import accuracy_score
# Predicted and True labels
y_true = [0, 1, 0, 1, 0, 1]
y_pred = [0, 1, 0, 0, 0, 1]
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)
২. Precision (বিশুদ্ধতা)
Precision হল সেই মেট্রিক যা বলে, পূর্বাভাস করা পজিটিভ ক্লাসের মধ্যে কতটা সঠিক। এর মাধ্যমে আমরা জানি, মডেল যে পজিটিভ ক্লাস পূর্বাভাস করেছে, তার মধ্যে কতটা আসলে পজিটিভ ছিল।
Precision গণনা করা হয়:
- True Positives (TP): সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাস করা।
- False Positives (FP): ভুলভাবে পজিটিভ ক্লাস পূর্বাভাস করা।
Precision খুবই গুরুত্বপূর্ণ যখন আমরা মডেল থেকে ভুল পজিটিভ ক্লাস কমানোর চেষ্টা করি। যেমন, রোগ নির্ণয়ের ক্ষেত্রে আমরা যদি ভুলভাবে সুস্থ ব্যক্তিকে অসুস্থ হিসেবে চিহ্নিত করি, সেটি সমস্যা তৈরি করতে পারে।
উদাহরণ:
from sklearn.metrics import precision_score
# Predicted and True labels
y_true = [0, 1, 0, 1, 0, 1]
y_pred = [0, 1, 0, 0, 0, 1]
precision = precision_score(y_true, y_pred)
print("Precision:", precision)
৩. Recall (স্মৃতি)
Recall হল সেই মেট্রিক যা বলে, আসলে পজিটিভ ক্লাসের মধ্যে কতটা সঠিকভাবে পূর্বাভাস করা হয়েছে। এটি দেখায় যে, কতটা সঠিকভাবে মডেল পজিটিভ ক্লাসগুলিকে চিহ্নিত করেছে।
Recall গণনা করা হয়:
- True Positives (TP): সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাস করা।
- False Negatives (FN): ভুলভাবে নেগেটিভ ক্লাস পূর্বাভাস করা।
Recall খুবই গুরুত্বপূর্ণ যখন আমরা ভুলভাবে পজিটিভ ক্লাস বাদ দেওয়ার (False Negatives) সম্ভাবনা কমাতে চাই। যেমন, রোগ নির্ণয়ের ক্ষেত্রে একটি রোগীকে ভুলভাবে সুস্থ হিসেবে চিহ্নিত করা (False Negative) খুবই ক্ষতিকর হতে পারে।
উদাহরণ:
from sklearn.metrics import recall_score
# Predicted and True labels
y_true = [0, 1, 0, 1, 0, 1]
y_pred = [0, 1, 0, 0, 0, 1]
recall = recall_score(y_true, y_pred)
print("Recall:", recall)
কখন কোন মেট্রিক ব্যবহার করবেন?
- Accuracy:
- Accuracy সাধারণত ব্যবহার করা হয়, তবে এটি imbalanced dataset (যেখানে পজিটিভ এবং নেগেটিভ ক্লাসের মধ্যে বড় পার্থক্য থাকে) এর ক্ষেত্রে বিভ্রান্তিকর হতে পারে।
- Precision:
- Precision ব্যবহৃত হয় যখন false positive (ভুল পজিটিভ) কমানোর প্রয়োজন হয়। যেমন, ইমেইল স্প্যাম ফিল্টারিং, যেখানে ভুলভাবে ইমেইল স্প্যাম হিসেবে চিহ্নিত করা ক্ষতিকর হতে পারে।
- Recall:
- Recall ব্যবহার করা হয় যখন false negative (ভুল নেগেটিভ) কমানোর প্রয়োজন হয়। যেমন, মেডিক্যাল ডায়াগনোসিস বা ক্যান্সার স্ক্রীনিং, যেখানে ভুলভাবে রোগীকে সুস্থ চিহ্নিত করা ঝুঁকিপূর্ণ হতে পারে।
সারাংশ
- Accuracy: মডেল কতটা সঠিকভাবে পূর্বাভাস করেছে তা পরিমাপ করে, তবে এটি ইমব্যালেন্সড ডেটাসেটে কার্যকর নাও হতে পারে।
- Precision: পজিটিভ ক্লাসের মধ্যে কতটা সঠিক ছিল তা পরিমাপ করে, এবং এটি False Positives কমাতে সহায়তা করে।
- Recall: মডেল কতটা পজিটিভ ক্লাস সঠিকভাবে চিহ্নিত করেছে তা পরিমাপ করে, এবং এটি False Negatives কমাতে সহায়তা করে।
এগুলি একে অপরের সাথে সম্পর্কিত, এবং মডেলের পূর্ণাঙ্গ কার্যকারিতা বুঝতে আপনাকে সেগুলোর মধ্যে ভারসাম্য বজায় রাখতে হবে।
Read more